home *** CD-ROM | disk | FTP | other *** search
/ Corel Professional Photos - Index & Utilities / Corel Stock Photo Library 2 - Index And Utilities.iso / french / utils / setup / corelcd.mst < prev    next >
Text File  |  1995-06-16  |  21KB  |  672 lines

  1. '**************************************************************************
  2. '*           MSSetup Toolkit - Corel Professional Photos Setup            *
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. CONST WS_VISIBLE=&H10000000
  11. CONST WS_BORDER =&H00800000
  12. CONST WS_CLIPCHILDREN =&H02000000
  13. CONST GWL_STYLE =-16
  14. CONST SW_SHOWMAXIMIZED=3
  15.  
  16. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  17. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%,offset%,style&) AS LONG
  18.  
  19. hWnd%=HwndFrame()
  20.  
  21. sti&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  22. stj%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  23.  
  24. ''Dialog ID's
  25. CONST WELCOME      = 100
  26. CONST ASKQUIT      = 200
  27. CONST DESTPATH     = 300
  28. CONST EXITFAILURE  = 400
  29. CONST EXITQUIT     = 600
  30. CONST EXITSUCCESS  = 700
  31. CONST ASKQTOUR     = 800
  32. CONST APPHELP      = 900
  33. CONST CUSTINST     = 6200
  34. CONST TOOBIG       = 6300
  35. CONST BADPATH      = 6400
  36. CONST MOSAIC       = 7100
  37. CONST PCDSCSI      = 7200
  38. CONST CDAUDIO      = 7300
  39. CONST VIDEOWARN    = 7500
  40.  
  41. ''Bitmap ID
  42. CONST LOGO         = 1
  43.  
  44. ''File Types
  45. CONST PCDLABFILES    = 1
  46. CONST PCDMOSFILES    = 2
  47. CONST PCDAUDFILES    = 3
  48. CONST PCDSCRFILES    = 4
  49. CONST PCDWALFILES    = 5
  50. CONST PCDDBFFILES    = 6
  51.  
  52. GLOBAL DEST$        ''Default destination directory.
  53. GLOBAL WINDRIVE$    ''Windows drive letter.
  54. GLOBAL MosDir$      ''Location of old mosaic program, if found.
  55. GLOBAL MosFlag$      ''Flag for old mosaic program, if found.
  56. GLOBAL QTRFlag$     ''Flag for QuickTour
  57. GLOBAL MPlrFlag     ''Flag for Media Player 
  58.  
  59. FLAG1$          ="No"      '' Copy flags for
  60. FLAG2$          ="No"      '' DLL files that go
  61. FLAG3$          ="No"      '' into WindowsDir and WindowsSysDir
  62. QTRFlag$        ="NO"
  63.  
  64. ''CustInst list symbol names
  65. GLOBAL PCDLABNEEDS$    ''Option list costs per drive
  66. GLOBAL PCDMOSNEEDS$
  67. GLOBAL PCDAUDNEEDS$
  68. GLOBAL PCDSCRNEEDS$
  69. GLOBAL PCDWALNEEDS$
  70. GLOBAL PCDDBFNEEDS$
  71.  
  72. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  73. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  74.  
  75. ''Dialog list symbol names
  76. GLOBAL CHECKSTATES$
  77. GLOBAL STATUSTEXT$
  78. GLOBAL DRIVETEXT$
  79.  
  80.  
  81. DECLARE SUB AddOptFilesToCopyList (ftype%)
  82. DECLARE SUB RecalcOptFiles (ftype%)
  83. DECLARE SUB RecalcPath
  84. DECLARE SUB SetDriveStatus
  85. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  86. DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER
  87.  
  88. INIT:
  89.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  90.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  91.  
  92.     SetBitmap CUIDLL$, LOGO
  93.     SetTitle "Installation de la bibliothΦque Corel Stock Photo"
  94.  
  95.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  96.     IF szInf$ = "" THEN
  97.     szInf$ = GetSymbolValue("STF_CWDDIR") + "CORELCD.INF"
  98.     END IF
  99.     ReadInfFile szInf$
  100.  
  101.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  102.     WINDIR$ = GetWindowsDir()
  103.     DEST$ = WINDRIVE$ + ":\CORELCD"
  104.  
  105.     ''CustInst list symbols
  106.     CHECKSTATES$ = "CheckItemsState"
  107.     STATUSTEXT$  = "StatusItemsText"
  108.     DRIVETEXT$   = "DriveStatusText"
  109.     FOR i% = 1 TO 7 STEP 1
  110.     AddListItem CHECKSTATES$, "ON"
  111.     NEXT i%
  112.     FOR i% = 1 TO 7 STEP 1
  113.     AddListItem STATUSTEXT$, ""
  114.     NEXT i%
  115.     FOR i% = 1 TO 7 STEP 1
  116.     AddListItem DRIVETEXT$, ""
  117.     NEXT i%
  118.     ReplaceListItem DRIVETEXT$, 7, DEST$
  119.  
  120.     ''Disk cost list symbols
  121.     PCDLABNEEDS$  = "PcdLabNeeds"
  122.     PCDMOSNEEDS$  = "PcdMosNeeds"
  123.     PCDAUDNEEDS$  = "PcdAudNeeds"
  124.     PCDSCRNEEDS$  = "PcdScrNeeds"
  125.     PCDWALNEEDS$  = "PcdWalNeeds"
  126.     PCDDBFNEEDS$  = "PcdDbfNeeds"
  127.     EXTRACOSTS$ = "ExtraCosts"
  128.     BIGLIST$    = "BigList"
  129.     FOR i% = 1 TO 7 STEP 1
  130.     AddListItem BIGLIST$, ""
  131.     NEXT i%
  132.     FOR i% = 1 TO 26 STEP 1
  133.     AddListItem EXTRACOSTS$, "0"
  134.     NEXT i%
  135.  
  136.     MPlrFlag = DoesFileExist(MakePath(WinDir$, "mplayer.reg"), femExists)
  137.  
  138.     RecalcPath
  139.     SetDriveStatus
  140.  
  141. '$IFDEF DEBUG
  142.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  143. '$ENDIF ''DEBUG
  144.  
  145.  
  146. WELCOME:
  147.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  148.     IF sz$ = "CONTINUE" THEN
  149.     UIPop 1
  150.     ELSE
  151.     GOSUB ASKQUIT
  152.     GOTO WELCOME
  153.     END IF
  154.  
  155.  
  156. CUSTINST:
  157.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  158.  
  159.     IF sz$ = "CONTINUE" THEN
  160.     ''Install only if it will fit.
  161.     FOR i% = 1 TO 6 STEP 1
  162.         IF GetListItem(BIGLIST$, i%) <> "" THEN
  163.         GOSUB TOOBIG
  164.         GOTO CUSTINST
  165.         END IF
  166.     NEXT i%
  167.     UIPop 1
  168.     GOTO INSTALL
  169.     ELSEIF sz$ = "PATH" THEN
  170.     GOTO GETPATH
  171.     ELSEIF sz$ = "CHK1" THEN
  172.     RecalcOptFiles PCDLABFILES
  173.     SetDriveStatus
  174.     GOTO CUSTINST
  175.     ELSEIF sz$ = "CHK2" THEN
  176.     RecalcOptFiles PCDMOSFILES
  177.     SetDriveStatus
  178.     GOTO CUSTINST
  179.     ELSEIF sz$ = "CHK3" THEN
  180.     RecalcOptFiles PCDAUDFILES
  181.     SetDriveStatus
  182.     GOTO CUSTINST
  183.     ELSEIF sz$ = "CHK4" THEN
  184.     RecalcOptFiles PCDSCRFILES
  185.     SetDriveStatus
  186.     GOTO CUSTINST
  187.     ELSEIF sz$ = "CHK5" THEN
  188.     RecalcOptFiles PCDWALFILES
  189.     SetDriveStatus
  190.     GOTO CUSTINST
  191.     ELSEIF sz$ = "CHK6" THEN
  192.     RecalcOptFiles PCDDBFFILES
  193.     SetDriveStatus
  194.     GOTO CUSTINST
  195.     ELSEIF sz$ = "REACTIVATE" THEN
  196.     RecalcPath
  197.     SetDriveStatus
  198.     GOTO CUSTINST
  199.     ELSE
  200.     GOSUB ASKQUIT
  201.     GOTO CUSTINST
  202.     END IF
  203.  
  204.  
  205.  
  206. INSTALL:
  207.     ClearCopyList
  208.     AddOptFilesToCopyList PCDLABFILES
  209.     AddOptFilesToCopyList PCDMOSFILES
  210.     AddOptFilesToCopyList PCDAUDFILES
  211.     AddOptFilesToCopyList PCDSCRFILES
  212.     AddOptFilesToCopyList PCDWALFILES
  213.     AddOptFilesToCopyList PCDDBFFILES
  214.     CreateDir DEST$, cmoNone
  215.     
  216.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  217.      IF DoesIniKeyExist("WIN.INI", "PhotoCD Lab", "Dir") = 1 THEN
  218.          PcdDir$ = GetIniKeyString("WIN.INI", "PhotoCD Lab", "Dir")
  219.          IF DoesFileExist(PcdDir$ + "\PCDSCSI.EXE", femExists) = 1 THEN
  220.          SetSymbolValue "ConfirmTextIn", PcdDir$
  221.          SetSymbolValue "EditFocus", "END"
  222.          sz$ = UIStartDlg(CUIDLL$, PCDSCSI, "FConfirmDlgProc", APPHELP, HELPPROC$)
  223.          IF sz$ = "BACK" THEN
  224.              UIPop 1
  225.              GOTO CUSTINST
  226.          ELSEIF sz$ = "CONTINUE" THEN
  227.              UIPop 1
  228.          END IF
  229.          END IF
  230.      END IF
  231.      IF PcdDir$ <> "" THEN
  232.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", PcdDir$, cmoOverwrite
  233.      ELSE
  234.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", DEST$ + "\PCDLAB", cmoOverwrite
  235.      END IF
  236.     END IF
  237.  
  238.     IF GetListItem(CHECKSTATES$, PCDMOSFILES) = "ON" THEN
  239.      IF MosFlag$ <> "" THEN
  240.          SetSymbolValue "ConfirmTextIn", MosDir$
  241.          SetSymbolValue "EditFocus", "END"
  242.          sz$ = UIStartDlg(CUIDLL$, MOSAIC, "FConfirmDlgProc", APPHELP, HELPPROC$)
  243.          IF sz$ = "BACK" THEN
  244.              UIPop 1
  245.              GOTO CUSTINST
  246.          ELSEIF sz$ = "CONTINUE" THEN
  247.              UIPop 1
  248.          END IF
  249.      ELSEIF MosFlag$ = "" AND MOSDIR$ <> "" THEN
  250.          '' Just sit there for now
  251.      ELSE
  252.          CreateIniKeyValue "WIN.INI", "CorelGraphics4", "Dir", DEST$ + "\MOSAIC\CONFIG", cmoOverwrite
  253.          CreateDir DEST$ + "\MOSAIC\CONFIG", cmoNone
  254.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "ProgramsDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  255.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "CustomDir", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  256.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "MosaicDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  257.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "FiltersDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  258.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "DataDir", DEST$ + "\MOSAIC\PROGRAMS\DATA", cmoOverwrite
  259.      END IF
  260.      END IF
  261.     
  262.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  263.      IF DoesIniKeyExist("WIN.INI", "CorelSCSI", "CD-Audio") = 1 THEN
  264.          CDAudioDir$ = GetIniKeyString("WIN.INI", "CorelSCSI", "CD-Audio")
  265.          IF DoesFileExist(CDAudioDir$ + "\CDAUDIO2.EXE", femExists) = 1 THEN
  266.          SetSymbolValue "ConfirmTextIn", CDAudioDir$
  267.          SetSymbolValue "EditFocus", "END"
  268.          sz$ = UIStartDlg(CUIDLL$, CDAUDIO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  269.          IF sz$ = "BACK" THEN
  270.              UIPop 1
  271.              GOTO CUSTINST
  272.          ELSEIF sz$ = "CONTINUE" THEN
  273.              UIPop 1
  274.          END IF
  275.          END IF
  276.      END IF
  277.      CreateIniKeyValue "WIN.INI", "CorelSCSI", "CD-Audio", DEST$ + "\CDAUDIO", cmoOverwrite
  278.     END IF
  279.  
  280.     CopyFilesInCopyList
  281.  
  282.     InstDrive$=MID$(DEST$,1,2)
  283.     CreateProgmanGroup "Professional Photos", "", cmoNone
  284.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  285.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  286.     CreateProgmanItem "Professional Photos", "PhotoCD Lab", MakePath(DEST$, "pcdlab\pcdscsi.exe "), "", cmoOverwrite
  287.     END IF
  288.  
  289.     IF GetListItem(CHECKSTATES$, PCDMOSFILES) = "ON" THEN
  290.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  291.     IF MosDir$ <> "" THEN
  292.         CreateProgmanItem "Professional Photos", "CorelMOSAIC!", MosDir$ + "\CORELMOS.EXE", "", cmoOverwrite
  293.     ELSE
  294.         CreateProgmanItem "Professional Photos", "CorelMOSAIC!", MakePath(DEST$, "mosaic\programs\corelmos.exe "), "", cmoOverwrite
  295.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELFLT.INI", "ColorPath", "CircuitPath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  296.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELFLT.INI", "ColorPath", "CurvePath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  297.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELPRN.INI", "ColorPath", "CircuitPath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  298.     END IF
  299.     END IF
  300.  
  301.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  302.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  303.     CreateProgmanItem "Professional Photos", "CD Audio", MakePath(DEST$, "cdaudio\cdaudio2.exe "), "", cmoOverwrite
  304.     END IF
  305.  
  306.     IF GetListItem(CHECKSTATES$, PCDSCRFILES) = "ON" THEN
  307.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  308.     END IF
  309.  
  310.     IF GetListItem(CHECKSTATES$, PCDWALFILES) = "ON" THEN
  311.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  312.     CreateProgmanItem "Professional Photos", "Configuration de Wallpaper Flipper", MakePath(GetWindowsDir, "wflipcnf.exe"), "", cmoOverwrite
  313.     END IF
  314.  
  315.     IF GetListItem(CHECKSTATES$, PCDDBFFILES) = "ON" THEN
  316.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  317.     CreateProgmanItem "Professional Photos", "Corel Base de donnΘes visuelle", MID$(GetSymbolValue("STF_SRCDIR"),1,3)+"library\fcvbase.exe", "", cmoOverwrite
  318.     END IF
  319.     CreateProgmanItem "Professional Photos", "Aide sur Artview Economiseur d'Θcran", MakePath(DEST$,"artview.hlp"), "", cmoOverwrite 
  320.     CreateProgmanItem "Professional Photos", "DΘmarrage", MakePath(DEST$,"g_start.hlp"), "", cmoOverwrite 
  321.  
  322. QUIT:
  323.     ON ERROR GOTO ERRQUIT
  324.  
  325.     IF ERR = 0 THEN
  326.     dlg% = EXITSUCCESS
  327.     ELSEIF ERR = STFQUIT THEN
  328.     dlg% = EXITQUIT
  329.     ELSE
  330.     dlg% = EXITFAILURE
  331.     END IF
  332. QUITL1:
  333.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  334.     IF sz$ = "REACTIVATE" THEN
  335.     GOTO QUITL1
  336.     END IF
  337.     UIPop 1
  338.     IF QTRFlag$ = "YES" AND dlg% = EXITSUCCESS THEN
  339.       displayname$ = GetIniKeyString(WinDir$ + "SYSTEM.INI", "BOOT.DESCRIPTION", "DISPLAY.DRV")
  340.       FOR a% = 1 TO LEN(displayname$) - 4
  341.     checkname$ = MID$(displayname$, a%, 4)
  342.     IF checkname$ = "mach" THEN
  343.     machexist = 1
  344.     end if
  345.       NEXT a%
  346.       if machexist = 1 then
  347.     sz$ = UIStartDlg(CUIDLL$, VIDEOWARN, "FConfirmDlgProc", 0, "")
  348.     UIPop 1
  349.       end if
  350.       IF MPlrFlag <> 1 THEN
  351.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  352.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  353.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  354.     Run (GetSymbolValue("STF_SRCDIR")+"utils\setup\profdisp.exe")
  355.       END IF
  356.       sz$ = UIStartDlg(CUIDLL$, ASKQTOUR, "FConfirmDlgProc", 0, "")
  357.     IF sz$ = "CONTINUE" THEN
  358.       UIPop 1
  359.       CHDRIVE GetSymbolValue("STF_SRCDIR")
  360.       CHDIR "\english\utils\cppqtour"
  361.       Run ("qtviewer.exe")
  362.     ELSE
  363.       UIPop 1
  364.     END IF
  365.     END IF
  366.     END
  367.  
  368. ERRQUIT:
  369.     i% = DoMsgBox("Les sources d'installation sont dΘgradΘes ; appelez le support technique de Corel", "Message d'installation", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  370.     END
  371.  
  372.  
  373.  
  374. GETPATH:
  375.     SetSymbolValue "EditTextIn", DEST$
  376.     SetSymbolValue "EditFocus", "END"
  377. GETPATHL1:
  378.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  379.  
  380.     IF sz$ = "CONTINUE" THEN
  381.     olddest$ = DEST$
  382.     DEST$ = GetSymbolValue("EditTextOut")
  383.  
  384.     ''Validate new path.
  385.     IF IsDirWritable(DEST$) = 0 THEN
  386.         GOSUB BADPATH
  387.         GOTO GETPATHL1
  388.     END IF
  389.     UIPop 1
  390.  
  391.     ''Truncate display if too long.
  392.     IF LEN(DEST$) > 23 THEN
  393.         ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  394.     ELSE
  395.         ReplaceListItem DRIVETEXT$, 7, DEST$
  396.     END IF
  397.  
  398.     ''Recalc if path changed.
  399.     IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  400.         RecalcPath
  401.         SetDriveStatus
  402.     END IF
  403.  
  404.     olddest$ = ""
  405.     GOTO CUSTINST
  406.     ELSEIF sz$ = "REACTIVATE" THEN
  407.     RecalcPath
  408.     SetDriveStatus
  409.     GOTO GETPATHL1
  410.     ELSEIF sz$ = "EXIT" THEN
  411.     GOSUB ASKQUIT
  412.     GOTO GETPATHL1
  413.     ELSE
  414.     UIPop 1
  415.     GOTO CUSTINST
  416.     END IF
  417.  
  418.  
  419. TOOBIG:
  420.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  421.     IF sz$ = "REACTIVATE" THEN
  422.     RecalcPath
  423.     SetDriveStatus
  424.     GOTO TOOBIG
  425.     END IF
  426.     UIPop 1
  427.     RETURN
  428.  
  429.  
  430.  
  431. BADPATH:
  432.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  433.     IF sz$ = "REACTIVATE" THEN
  434.     RecalcPath
  435.     SetDriveStatus
  436.     GOTO BADPATH
  437.     END IF
  438.     UIPop 1
  439.     RETURN
  440.  
  441.  
  442.  
  443. ASKQUIT:
  444.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  445.  
  446.     IF sz$ = "EXIT" THEN
  447.     UIPopAll
  448.     ERROR STFQUIT
  449.     ELSEIF sz$ = "REACTIVATE" THEN
  450.     GOTO ASKQUIT
  451.     ELSE
  452.     UIPop 1
  453.     END IF
  454.     RETURN
  455.  
  456.  
  457.  
  458. '**
  459. '** Purpose:
  460. '**     Adds the specified option files to the copy list.
  461. '** Arguments:
  462. '**     ftype%  - type of files to add, one of the following:
  463. '**             PCDLABFILES, PCDAUDFILES, PCDMOSFILES, PCDSCRFILES, PCDWALFILES, PCDQTRFILES, PCDDBFFILES
  464. '** Returns:
  465. '**     none.
  466. '*************************************************************************
  467. SUB AddOptFilesToCopyList (ftype%) STATIC
  468.  
  469.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  470.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  471.     WinDirLen = LEN(GetWindowsDir)-1
  472.     WinDir$ = MID$(GetWindowsDir,1,WinDirLen)
  473.     InstDrive$ = MID$(DEST$,1,2)
  474.     IF ftype% = PCDLABFILES THEN
  475.         AddSectionFilesToCopyList "PcdLabFiles", SrcDir$, DEST$ + "\PCDLAB"
  476.         FLAG1$="Yes"
  477.         FLAG2$="Yes"
  478.         FLAG3$="Yes"
  479.     ELSEIF ftype% = PCDMOSFILES THEN
  480.      IF DoesIniKeyExist("WIN.INI", "CorelGraphics4", "Dir") = 1 THEN
  481.          CorelAppDir$ = GetIniKeyString("WIN.INI", "CorelGraphics4", "Dir")
  482.          MosDir$ = GetIniKeyString(CorelAppDir$ + "\CORELAPP.INI", "Config", "ProgramsDir")
  483.          IF MosDir$ <> "" THEN
  484.            IF DoesFileExist(MosDir$ + "\CORELMOS.EXE", femExists) = 1 THEN
  485.          MosFlag$ = "Yes"
  486.            ELSE
  487.          MosFlag$ = ""
  488.            END IF
  489.            AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, MosDir$
  490.            AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, MosDir$
  491.          ELSE
  492.           AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS"
  493.           AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, DEST$ + "\MOSAIC\CUSTOM"
  494.           AddSectionFilesToCopyList "PcdMosInis", SrcDir$, DEST$ + "\MOSAIC\CONFIG"
  495.           AddSectionFilesToCopyList "PcdMosData", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS\DATA"
  496.          END IF 
  497.      ELSE 
  498.           AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS"
  499.           AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, DEST$ + "\MOSAIC\CUSTOM"
  500.           AddSectionFilesToCopyList "PcdMosInis", SrcDir$, DEST$ + "\MOSAIC\CONFIG"
  501.           AddSectionFilesToCopyList "PcdMosData", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS\DATA"
  502.      END IF
  503.         FLAG1$="Yes"
  504.         FLAG3$="Yes"
  505.     ELSEIF ftype% = PCDAUDFILES THEN
  506.         AddSectionFilesToCopyList "PcdAudFiles", SrcDir$, DEST$ + "\CDAUDIO"
  507.     ELSEIF ftype% = PCDSCRFILES THEN
  508.         AddSectionFilesToCopyList "PcdScrFiles", SrcDir$, GetWindowsDir
  509.         FLAG3$="Yes"
  510.     ELSEIF ftype% = PCDWALFILES THEN
  511.         AddSectionFilesToCopyList "PcdWalFiles", SrcDir$, GetWindowsDir
  512. '       ELSEIF ftype% = PCDQTRFILES THEN
  513. '           AddSectionFilesToCopyList "PcdQtrFiles", SrcDir$, GetWindowsDir
  514. '           AddSectionFilesToCopyList "PcdQtrSysFiles", SrcDir$, GetWindowsSysDir
  515. '           QtrFlag$="YES"
  516.        END IF
  517.     IF FLAG1$="Yes" THEN
  518.         CreateIniKeyValue "WIN.INI", "Extensions", "PCD", DEST$ + "\PCDLAB\PCDSCSI.EXE ^.PCD", cmoOverwrite
  519.         AddSectionFilesToCopyList "PcdDllFiles", SrcDir$, GetWindowsSysDir
  520.         IF DoesFileExist(GetWindowsDir + "PCDLIB.DLL", femExists) =1 THEN
  521.         RemoveFile GetWindowsDir + "PCDLIB.DLL", cmoNone
  522.         END IF
  523.         IF DoesFileExist(GetWindowsDir + "PCDXTIF.DLL", femExists) =1 THEN
  524.         RemoveFile GetWindowsDir + "PCDXTIF.DLL", cmoNone
  525.         END IF
  526.         IF DoesFileExist(GetWindowsDir + "PCDXEPS.DLL", femExists) =1 THEN
  527.         RemoveFile GetWindowsDir + "PCDXEPS.DLL", cmoNone
  528.         END IF
  529.         IF DoesFileExist(GetWindowsDir + "PCDXPCX.DLL", femExists) =1 THEN
  530.         RemoveFile GetWindowsDir + "PCDXPCX.DLL", cmoNone
  531.         END IF
  532.         IF DoesFileExist(GetWindowsDir + "PCDXBMP.DLL", femExists) =1 THEN
  533.         RemoveFile GetWindowsDir + "PCDXBMP.DLL", cmoNone
  534.         END IF
  535.     END IF
  536.     IF FLAG2$="Yes" THEN
  537.         AddSectionFilesToCopyList "PcdCtlFile", SrcDir$, GetWindowsSysDir
  538.     END IF
  539.     IF FLAG3$="Yes" THEN
  540.         AddSectionFilesToCopyList "PcdDllFile", SrcDir$, GetWindowsSysDir
  541.     END IF
  542.         AddSectionFilesToCopyList "PcdReadMe", SrcDir$, DEST$
  543.     FLAG1$="No"
  544.     FLAG2$="No"
  545.     FLAG3$="No"
  546.     SrcDir$ = ""
  547.     END IF
  548. END SUB
  549.  
  550. '**
  551. '** Purpose:
  552. '**     Recalculates disk space for the given option files and sets
  553. '**     the status info symbol "StatusItemsText".
  554. '** Arguments:
  555. '**     ftype% - type of files to add, one of the following:
  556. '**             PCDLABFILES, PCDMOSFILES, PCDAUDFILES, PCDSCRFILES, PCDWALFILES, PCDQTRFILES
  557. '** Returns:
  558. '**     none.
  559. '*************************************************************************
  560. SUB RecalcOptFiles (ftype%) STATIC
  561.     CursorSave% = ShowWaitCursor()
  562.     ClearCopyList
  563.     AddOptFilesToCopyList ftype%
  564.  
  565.     fExtra% = 0
  566.     IF ftype% = PCDLABFILES THEN
  567.     ListSym$ = PCDLABNEEDS$
  568.     ELSEIF ftype% = PCDMOSFILES THEN
  569.     ListSym$ = PCDMOSNEEDS$
  570.     ELSEIF ftype% = PCDAUDFILES THEN
  571.     ListSym$ = PCDAUDNEEDS$
  572.     ELSEIF ftype% = PCDSCRFILES THEN
  573.     ListSym$ = PCDSCRNEEDS$
  574.     ELSEIF ftype% = PCDWALFILES THEN
  575.     ListSym$ = PCDWALNEEDS$
  576.     ELSEIF ftype% = PCDDBFFILES THEN
  577.     ListSym$ = PCDDBFNEEDS$
  578.     IF QTRFlag$ = "YES" THEN
  579.     QTRFlag$ = "NO"
  580.     END IF
  581.     END IF
  582.  
  583.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  584.  
  585.     cost& = 0
  586.     FOR i% = 1 TO 26 STEP 1
  587.     cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  588.     NEXT i%
  589.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  590.  
  591.     IF StillNeed& > 0 THEN
  592.     ReplaceListItem BIGLIST$, ftype%, "YES"
  593.     ELSE
  594.     ReplaceListItem BIGLIST$, ftype%, ""
  595.     END IF
  596.  
  597. '    IF fExtra% THEN
  598. '        ReplaceListItem EXTRACOSTS$, ndrive%, ""
  599. '    END IF
  600.     RestoreCursor CursorSave%
  601.     ListSym$ = ""
  602. END SUB
  603.  
  604.  
  605. '**
  606. '** Purpose:
  607. '**     Recalculates disk space and sets option status info according
  608. '**     to the current destination path.
  609. '** Arguments:
  610. '**     none.
  611. '** Returns:
  612. '**     none.
  613. '*************************************************************************
  614. SUB RecalcPath STATIC
  615.  
  616.     CursorSave% = ShowWaitCursor()
  617.  
  618.     RecalcOptFiles PCDLABFILES
  619.     RecalcOptFiles PCDMOSFILES
  620.     RecalcOptFiles PCDAUDFILES
  621.     RecalcOptFiles PCDSCRFILES
  622.     RecalcOptFiles PCDWALFILES
  623.     RecalcOptFiles PCDDBFFILES
  624.  
  625.     RestoreCursor CursorSave%
  626. END SUB
  627.  
  628.  
  629. '**
  630. '** Purpose:
  631. '**     Sets drive status info according to latest disk space calcs.
  632. '** Arguments:
  633. '**     none.
  634. '** Returns:
  635. '**     none.
  636. '*************************************************************************
  637. SUB SetDriveStatus STATIC
  638.  
  639.     drive$ = MID$(DEST$, 1, 1)
  640.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  641.     cost& = VAL(GetListItem(PCDLABNEEDS$, ndrive%))+VAL(GetListItem(PCDMOSNEEDS$, ndrive%))+VAL(GetListItem(PCDAUDNEEDS$, ndrive%))+VAL(GetListItem(PCDSCRNEEDS$, ndrive%))+VAL(GetListItem(PCDWALNEEDS$, ndrive%))
  642.     free& = GetFreeSpaceForDrive(drive$)
  643.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  644.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  645.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  646.                 
  647. END SUB
  648.  
  649.  
  650. '**
  651. '** Purpose:
  652. '**     Appends a file name to the end of a directory path,
  653. '**     inserting a backslash character as needed.
  654. '** Arguments:
  655. '**     szDir$  - full directory path (with optional ending "\")
  656. '**     szFile$ - filename to append to directory
  657. '** Returns:
  658. '**     Resulting fully qualified path name.
  659. '*************************************************************************
  660. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  661.     IF szDir$ = "" THEN
  662.     MakePath = szFile$
  663.     ELSEIF szFile$ = "" THEN
  664.     MakePath = szDir$
  665.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  666.     MakePath = szDir$ + szFile$
  667.     ELSE
  668.     MakePath = szDir$ + "\" + szFile$
  669.     END IF
  670. END FUNCTION
  671.  
  672.